
// number数据类型，采用的IEE 754格式表示整数和浮点值
// 不同的数值类型有不同的数值字面量格式
// 最基本的数值字面量格式是十进制，也可以是八进制（0o开头），十六进制（0x开头）

console.log("常见的整数")
let intNum = 55;           //十进制整数55
console.log("十进制整数："+intNum);

let octalNum = 0o70;       //八进制整数56
console.log("八进制整数："+octalNum);

let hexNum = 0x39;         //十六进制整数57
console.log("十六进制整数："+hexNum);



// 浮点值数值中必须包含小数点，且小数点后必须至少有一个数字
// 对于非常大的或非常小的数值，浮点值可以科学计数法表示
// 浮点值的精确度虽然很高但是在算数计算中远不如整数准确
console.log("浮点数")
let floatNum1 = 1.1;
let floatNum2 = 0.1;
let floatNum3 = .1;        // 有效，但不推荐
let floatNum4 = 3.125e7;   // 等于 31250000
let a = 0.1, b = 0.2;
console.log(a + b);        //0.30000000000000004 !== 0.3

// 有一个特殊的数值NaN,意思是"不是数值"，用来表示本来要返回数值的操作失败了
// NaN具有几个特殊的属性：
// 1.任何设计NaN的操作始终返回NaN
// 2.NaN不等于包含NaN在内的任何值
// 3.NaN通过isNaN来判断收到的参数是否"不是数值"
console.log("NaN 相关的操作")
console.log(0/0);          //NaN
console.log(5/0);          //Infinity
console.log(5/-0);         //-Infinity
console.log(NaN == NaN);   //false
console.log(isNaN(NaN));   //true
console.log(isNaN(10));    //false,10是数值
console.log(isNaN("10"));  //false，"10"可以转换为数值10
console.log(isNaN("ES"));  //true，"ES"无法转换为数值
console.log(isNaN(true));  //false，true可以转换为数值1，false可以转换为数值0


// 数值转换
// Number()  
//     布尔值，true转换为1 ，false转换为0
//     null返回0
//     undefined 返回NaN
//     字符串：
//         包含有数值字符，包括数值字符前面带有-，+的情况，转换成十进制数值
//         包含有效的浮点值格式"1.1"，转换成相应的浮点值
//         包含有有效的十六进制格式如"0xf",则会转换为与该十六进制值对应的十进制整数值
//         如果是空字符串（不包含字符），则返回0。
//         其他情况返回NaN
console.log("number数值转换")
let num1 = Number("Hello world!");            // NaN
console.log(num1);
let num2 = Number("");                        // 0
consolee.log(num2);
let num3 = Number("000011");                  // 11
console.log(num3)
let num4 = Number(true);                      // 1
console.log(num4)


// // parseInt()

// parseFloat()

